1. Field of the Invention
The present invention relates to a distributed data processing system of the type in which a plurality of programs are executed in a distributed state by systematically controlling a plurality of computers. More particularly, the present invention relates to a program debugging system suitable for debugging the processes concurrently and in parallel operating in the distributed data processing system, when those programs are processed in concurrent, parallel or distributed manner.
2. Discussion of the Related Art
Recently in the field of computers, because of the prevalence of communication networks, decreasing costs of computers, and the complicated and varied processing required for computers, programs, each consisting of processes running concurrently and in parallel, operating through communicating means interconnected through communication channels have been described. Particularly, a distributed program consisting of processes, which are distributed in a plurality of computers interconnected in narrow and wide communication networks and that operate concurrently and in parallel, has been written.
In the technical development in this field, emphasis is placed on how to make it easy to describe the processes cooperatively operating in a concurrent/parallel manner and how to make it easy to debug these processes.
A modular programming method has been known as one of the known methods for describing such processes in an easy manner. In the modular programming method, a program is functionally divided into server programs for processing data and client programs for using the results of the processing performed by the server programs. The programs are described for each function.
A method called a remote procedure call (RPC) is known as one of the methods for functionally dividing the program into the server programs and the client programs. For details of the RPC method, reference is made to "Frontiers of Distributed Computing Systems", Nikkei Electronics, Jul. 11, 1990, No. 502, PP. 122-148.
There is known a method of easily debugging the programs. In the debugging method, break points are set at specific positions in the program. During the execution of the program, immediately before an instruction at the break-pointed position is executed, the whole program is interrupted. Parameters in the program are checked or, if incorrect, they are replaced with correct ones. Then, the computer executes again the program from the position of the program where it was interrupted in execution. The debugging method is discussed by M. Linton in his paper "A Debugger for the Berkeley Pascal System", Master's thesis, University of California at Berkeley, June 1981.
In the application of the debugging method to a computing system consisting of concurrent and parallel operating processes, where the RPC is used as a basic communication means, a person attempting to debug sets break points at desired positions in a specific process of the prescribed processes operating concurrently and in parallel, and immediately before an instruction at the break-point is executed, all the concurrent and parallel operating processes to be debugged are interrupted in execution. Then, the person checks the parameters of the process and replaces incorrect parameters with correct ones as in the conventional debugging method for the single process. After the debugging, the execution of all the processes interrupted are restarted. This is discussed by R. Cooper in his paper "Pilgrim: A Debugger for Distributed Systems", Proc. of 7th Int. Conf. on Distributed Computing Systems, PP. 458-465 (September 1987),.sctn.5.2 Distributed break pointing in Pilgrim.
In the conventional program debugging systems, efforts have been made placing an emphasis on the development of the technique to quickly interrupt the execution of a plurality of concurrent and parallel operating processes to be debugged, when a process will execute an instruction at the break-pointed position in the computing network using the RPC-basis communication as the basic process-to-process communication. A process-to-process communication means of the broadcasting type, which is capable of communicating with all the related processes in a broadcasting manner, is required to interrupt the execution of the concurrent and parallel operating processes as quickly as possible. In the distributed data processing system, if it is not provided with the broadcasting type process-to-process communication means, the necessary functions cannot be realized in the conventional program debugging system.